#include "Widget.h"
#include "TagMaster.h"
#include <QApplication>
#include <QTextStream>

// TODO: 如果一个元素的子节点只有纯文本，则可以把纯文本移动到元素的属性中。写成 <tag value=""/> 的形式可以简化代码中对它的处理。

int main(int argc, char *argv[])
{
    // https://stackoverflow.com/questions/27378143/qt-5-produce-random-attribute-order-in-xml
    qSetGlobalQHashSeed(0);
    QApplication a(argc, argv);
    Widget w;
    w.show();

    QTextStream out(stdout);

    TagMaster master;

    TagItem item1 = master.tags().createNewChild();
    item1.setName("默认标签组");
    item1.setType("checkbox");
    item1.setValue("热播;吸引人;有续集;");

    RelationItem item2 = master.relations().createNewChild();

    LinkItem item3 = item2.links().createNewChild();
    item3.setPath(R"(C:\Users\zhich\Desktop\123.xml)");
    item3.setSize(666);
    item3.setQs("VFEF34G");

    LinkItem item4 = item2.links().createNewChild();
    item4.setPath(R"(C:\Users\zhich\Desktop\321.xml)");
    item4.setSize(999);
    item4.setQs("DEF34G");

    SimpleTagItem item5 = item2.simpleTags().createNewChild();
    item5.setId(1);
    item5.setValue("hello");

    TDir dir1 = master.entry().TDir::createNewDir();
    TDir dir2 = dir1.createNewDir();
    TFile file1 = dir2.createNewFile();

    dir1.setName("aaa");
    dir2.setName("bbb");
    file1.setName("ccc");

    master.entry().createNewFile("aaa/bbb/ddd");


    master.saveXmlFileAs(R"(C:\Users\zhich\Desktop\123.xml)");


//    tagList.append("描述", "string", "");
//    tagList.append("评分", "number", "[0,5]");
//    tagList.append("是否收藏", "bool", "true");

//    tagList.idRefer(1).setLog("hello");





//    SimpleTagItem t1(1, "123");
//    SimpleTagItem t2(2, "好看");
//    QVector<SimpleTagItem> tags;
//    tags << t1 << t2;
//    // master.openXmlFile(R"(C:\Users\zhich\Desktop\TagMaster.xml)");
//    master.createNewTag("默认标签组", "checkbox", "热播;吸引人;有续集;");
//    master.createNewTag("描述", "string", "");
//    master.createNewTag("评分", "number", "[0,5]");
//    master.createNewTag("是否收藏", "bool", "true");

//    TagItem tag = master.tagRefer(2);
//    tag.setName("aaa");

//    // out << tag;

//    master.setFileTag("ss/tt/aa", 544, "2345", tags);
//    master.setFileTag("ss/ff/aa", 544, "2345", tags);
//    master.setFileTag("ss/gg/aa", 544, "2345", tags);
//    master.setFileTag("ss/tt/bb", 544, "2345", tags);
//    master.setFileTag("ss/tt/cc", 544, "2345", tags);
//    master.saveXmlFileAs(R"(C:\Users\zhich\Desktop\123.xml)");
    return a.exec();
}
